package com.cskaoyan.mapper;

import com.cskaoyan.bean.BO.GoodsBO;
import com.cskaoyan.bean.PO.MarketGoods;
import com.cskaoyan.bean.PO.MarketGoodsAttribute;
import com.cskaoyan.bean.PO.MarketGoodsExample;
import com.cskaoyan.bean.PO.MarketGoodsSpecification;
import com.cskaoyan.bean.VO.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MarketGoodsMapper {
    long countByExample(MarketGoodsExample example);

    int deleteByExample(MarketGoodsExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(MarketGoods record);

    int insertSelective(MarketGoodsVo record);

    List<MarketGoods> selectByExampleWithBLOBs(MarketGoodsExample example);

    List<MarketGoods> selectByExample(MarketGoodsExample example);

    List<MarketGoodsVo> selectByExampleVo(MarketGoodsExample example);

    MarketGoods selectByPrimaryKey(Integer id);

    MarketGoodsVo selectByPrimaryKeyVo(Integer id);

    int updateByExampleSelective(@Param("record") MarketGoods record, @Param("example") MarketGoodsExample example);

    int updateByExampleWithBLOBs(@Param("record") MarketGoods record, @Param("example") MarketGoodsExample example);

    int updateByExample(@Param("record") MarketGoods record, @Param("example") MarketGoodsExample example);

    int updateByPrimaryKeySelective(MarketGoodsVo record);

    int updateByPrimaryKeyWithBLOBs(MarketGoods record);

    int updateByPrimaryKey(MarketGoodsVo record);

    GoodsCategoryIdVo selectCategoryId(Integer id);

    MarketGoodsVo selectGoodsById(Integer id);

    List<MarketGoodsSpecification> selectSpecificationById(Integer id);

    List<MarketGoodsAttribute> selectAttributesById(Integer id);

    List<MarketGoodsProductVo> selectProductById(Integer id);

    List<BrandVo> selectBrand();

    List<CategoryVo> selectCategory();

    List<ChildrenEntityVo> selectChildrenCategory(int value);
}